// const fs = require('fs')
// 1、简单读取
// fs.readFile('./04_函数.ts1', 'UTF-8', (err, dataStr) => {
//   if (err) {
//     return console.log(new Error(err.message))
//   }
//   console.log('文件读取成功！', dataStr)
// })

// 2、流式读取
// const rs = fs.createReadStream('../../package-lock.json')
// // open事件：每当读取流对象创建成功，该回调会执行
// rs.on('open', () => {
//   console.log('读取流创建成功')
// })

// // data事件：每当从文件中读取一段数据时（64kb）, 该回调就会执行一次
// rs.on('data', chunk => {
//   console.log(chunk.length)
// })

// rs.on('close', () => {
//   console.log('读取流关闭')
// })

// 3、简单写入
// fs.writeFile('./00_测试fs系统.js', '//fs写入', { flag: 'a' }, (err) => {
//   if (err) {
//     return console.log(new Error(err.message))
//   }
//   console.log('文件写入成功！')
// })

// 4、流式写入
// const ws = fs.createWriteStream('./00_测试fs系统.js')
// ws.write('//我的手机明明没有坏掉，可是她为什么没给我打电话呢')
// ws.write('//谁家玉笛暗飞声，散入春风满洛城')

// // text
// fs.readFile('./1.tex', 'utf8', (err, result) => {
//   if (err) {
//     return console.log('文件读取失败', err.message)
//   }
//   let arrOld = result.split(' ')
//   let arrNew = []
//   arrOld.map(item => {
//     arrNew.push(item.replace('=', ':'))
//   })
//   let newStr = arrNew.join('\r\n')
//   fs.writeFile(__dirname + './00_测试fs系统.js', newStr, err => {
//     if (err) {
//       console.log('文件写入失败', err.message)
//     }
//     console.log('文件写入成功')
//   })
// })
let obj = [
  { id: 1 },
  { id: 2 },
  { id: 1 },
  { id: 3 },

]
function removeConclusion (list) {
  return list.filter((item, index, self) => {
    return self.findIndex(x => x.id === item.id) === index
  })
}
console.log(removeConclusion(obj))